perm filename 0.SAI[999,BGB] blob
sn#030930 filedate 1973-03-25 generic text, type T, neo UTF8
00100 BEGIN "0"
00200 REQUIRE "ABBREV[SYS,BGB]" SOURCE_FILE;
00300
00400 DEFINE CALLI="'047000000000";
00500 DEFINE SWAR ="'043000000000";
00600 DEFINE UPG ="'703000000000";
00700
00800 ITG ARRAY DPYBUF [0:25000];
00900 ITG ARRAY FRAME[0:60];
01000 ITG ARRAY SIZE[0:60];
01100 ITG I,J,FLG;
01200 ITG PTR,SIZ;
01300 STRING FILM;
01400 LABEL L1,L2;
01500
01600 L1:
01700 FILM ← "A";
01800 PTR ← 0;
01900 α LOAD 'EM UP;
02100 FOR I←0 STEP 1 UNTIL '54 DO
02200 BEGIN
02300 OPEN(1,"DSK",8,3,0,0,0,0);
02400 LOOKUP(1,FILM&CVOS(I)&".PLT[ARM,LOU]",FLG);
02500 IF FLG THEN GO L1;
02600 J ← WORDIN(1);
02700 SIZ ← WORDIN(1);
02800 ARRYIN(1,DPYBUF[PTR],SIZ);
02900 RELEASE(1);
03000 FRAME[I]←LOCATION(DPYBUF[PTR]);
03100 SIZE[I]←SIZ;
03200 PTR←PTR+SIZ;
03300 END;
03350 OUTSTR(↓&9&"TOTAL BUFFER SIZE IS "&CVS(PTR)&↓);
03400 S⊂ MOVEI L2;HRRM '120;HRRM '124;'047000400017;JRST 4,;⊃;
03600 L2:
00100 S⊂ "LOOP"
00200 LABEL L0,L1,SA,L2,L3,DEL,CRL,OSTR,L00;
00300 LABEL SWARG,REE,CNT1,CNT2;
00305 MOVEI 1001;
00310 '702000000000 3,;
00400 MOVEI L0;HLRM '120;
00500 L0: MOVEI REE;HRRM '144;MOVEI 1,40;
00600 L00: MOVE CRL;XCT OSTR;SOJG 1,L00;
00800
00900 α FIRE UP SPACE WAR JOB;
01000 SETZM I;
01100 MOVEI SA;
01200 HRL SWARG;
01300 CALLI '400003;
01400 CALLI '400017;
01500
01600 α SLEEP - PER CHANCE TO DREAM;
01700 L1: MOVEI 1,1;
01800 CALLI 1,'31;
01900 JFCL;
01950 '051100000000;
02000 JRST L1;
02010 CAIN '15;JRST L1;CAIN '12;JRST L1;
02025 ANDI '17;MOVEM CNT2;
02026 MOVE CRL;XCT OSTR;
02027 MOVE CRL;XCT OSTR;
02028 MOVE CRL;XCT OSTR;
02029 MOVE CRL;XCT OSTR;
02030 MOVE CRL;XCT OSTR;
02050 JRST L1;
02100
02200 α SPACE WAR MODULE;
02300 SA: AOS 1,CNT1;CAMGE 1,CNT2;CALLI '400024;
02325 SETZM CNT1;
02350 MOVE 1,I;ADD 1,DEL;SKIPN 1;MOVNS DEL;MOVEM 1,I;
02400 CAIN 1,'54;MOVNS DEL;
02500 MOVE 1,I; ADD 1,FRAME; MOVE (1); MOVEM PTR;
02600 MOVE 1,I; ADD 1,SIZE; MOVE (1); MOVEM SIZ;
02700 JRST 3,@L2;L2: L3;L3: UPG PTR;
02800 JFCL;
02900 CALLI '400024;
03000 DEL: 1;
03100 CRL: '064240000000;
03200 OSTR: '051140000000;
03300 SWARG: '400001;
03400 CNT1:0;CNT2:0;
03450 REE: ANDI '17;
03475 MOVEM SWARG;
03500 JRST L0;
03600 END;
03700 END "0";